/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Sample UML2 to C++ generation
 *
 * Copyright (c) 2013 Alexander Diemand
 * All rights reserved.
 *
 * Author:     Alexander Diemand
 * Address:    Outerspace
 * Project:    Sample UML2 to C++ generation
 *
 * UML2 to C++ 
 * In easy steps from UML2 modeling to C++ coding.
 * What already works:
 * i)   generation of source and headers for enums and classes
 * ii)  the latter are: datatypes, interfaces and standard classes
 * iii) inherited static operations
 * iv)  isLeaf -> final, isReadOnly/isQuery -> const
 * What needs some work:
 * i)   templates are not yet supported
 * ii)  testing testing testing
 *
 * Repository: tbd
 * Generated:  2013-03-23 16:59:02
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#pragma once

#ifndef _dataModel_COMMPARAMS_H_
#define _dataModel_COMMPARAMS_H_


/**
 * @generated with Eclipse/Acceleo
 *  
 */



// Start of user code for includes
#include <string>
#include <algorithm>
#include <vector>
// End of user code

namespace dataModel
{

/**
 * The data type CommParams
 * 
 * @author Eclipse/Acceleo - model2Cpp generator
 * @generated
 */
class CommParams final
{
	// Start of user code def of constructors/destructor
	public:

	// CTOR
	CommParams(
		);

	// DTOR
	virtual ~CommParams();

	public:
	CommParams(const CommParams &);
	CommParams & operator=(const CommParams &);
	bool operator==(const CommParams &) const;

	void swap(CommParams &) throw();

	// End of user code

	// * * * * *  F I E L D S  * * * * *
	private:
	/**
	 * The attribute balance
	 * @generated
	 */
	double balance;
	protected:
	/**
	 * The attribute email
	 * @generated
	 */
	std::string email;
	protected:
	/**
	 * The attribute phones
	 * @generated
	 */
	std::vector<std::string> phones;
	
	

	// * * * * *  O P E R A T I O N S  * * * * *
	private:
	
	
	protected:
	
	
	public:
	
	

	// * * * * *  A C C E S S O R S  * * * * *
	public:
	
	/**
	 * Accessors of the field #email
	 * @generated
	 */
	std::string getEmail() const;
	void setEmail(const std::string &p_Email);
	
	/**
	 * Accessors of the field #phones
	 * @generated
	 */
	std::vector<std::string> getPhones() const;
	void setPhones(const std::vector<std::string> &p_Phones);
	

}; // class


} // namespace dataModel

namespace std {

template <>
void swap (dataModel::CommParams & o1, dataModel::CommParams & o2) throw();

} // in std

#endif // _dataModel_CommParams_H_
